package DAO;

import java.util.List;

import model.Account;
import model.AccountQuestion;
import model.Message;
import model.Page;


public interface AccountDAO {
	/** 增加账目
	 * @param account
	 * @return result // 0-失败 1 -成功��½�ɹ�
	 */
	public int addAccount(Account account);

	
	/** 获得账目列表
	 * param page 分页对象
	 * @return result // 账户列表��½�ɹ�
	 */
	public List<Account> getAccountList(Page page);

	/**
	 * @param account ID
	 * @return result // account实例
	 */
	public Account getAccount(int id);

	/** 修改账目
	 * @param account实例
	 * @return result //  0-失败 1 -成功
	 */
	public int modifyAccount(Account account);

	/** 根据账目的id取得账目对应的question
	 * @param account得id page
	 * @return result //  question列表
	 */
	public List<AccountQuestion> getQuestionList(int AccountId,Page page);

	/** 对某个账目进行提问
	 * @param question
	 * @return result //0 失败 1 成功
	 */
	public int newQuestion(AccountQuestion question);

	/** 对某个问题回答或修改回答
	 * @param question
	 * @return result //0 失败 1 成功
	 */
	public int replyOrAnswerQuestion(AccountQuestion question);

	/** 删除问题
	 * @param question
	 * @return result //0 失败 1 成功
	 */
	public int deleteAccountQ(AccountQuestion question);

	/** 获得账目留言列表
	 * @param  page 分页对象
	 * @return result //账目留言列表
	 */
	public List<Message> getAccountMessages(Page page);
	
	/** 增加账目留言
	 * @param message
	 * @return result //0 失败 1 成功
	 */
	public int addAccountMessage(Message message);

	/** 删除账目 把数据库中的state改为1
	 * @param accountId
	 * @return result //0 失败 1 成功
	 */
	public int deleteAccount(int accountId);

	/** 删除账目板留言 把数据库中的state改为1
	 * @param MessageId
	 * @return result //0 失败 1 成功
	 */
	public int deleteMessage(int MessageId);

	
}
